1. Field of the Invention
Embodiments of the present invention generally relate to data protection systems and, more particularly, to a method and apparatus for performing file-level restoration from a block-based backup file stored on a sequential storage device.
2. Description of the Related Art
A computing environment may utilize stored data for various operations. The data may be stored within one or more storage devices (e.g., RAID disk array, tape drives, hard disk drive and the like). The data may be sensitive (e.g., privileged information, health records, identification information and the like) and/or important to the operations of the computing environment. A sudden loss or corruption of the data, however, disrupts the operations of the computing environment and causes a significant decrease in productivity. Accordingly, the computing environment employs various forms of backup systems to protect the data such that the data may be recovered by the computing environment.
Normally, a backup system creates a backup file, such as an image file or a virtual disk file, comprising one or more fragment files arranged in an disk image format (e.g., Virtual Hard Disk (VHD), Virtual Machine Disk Format (VMDK), Virtual Volume Image (V2i) and the like) for a volume (e.g., a plurality of objects organized in accordance with a file system, such as New Technology File System (NTFS), File Allocation Table (FAT) and the like). The plurality of objects that form the volume may include files. The backup file may be block-based (i.e., volume-based). The backup system may create a base backup file (e.g., an image file or a virtual disk file representing a full backup of the volume) followed by a number of incremental backup files (e.g., a number of image files or virtual disk files where each backup file comprises data that has changed since a previous backup file). The base backup file and the number of incremental backup files form a backup chain (e.g., an image file chain). The backup chain represents various states of the volume (e.g., states of the plurality of objects associated with time).
Occasionally, objects (e.g., files and directories) are to be restored from the backup chain stored on a source storage device (e.g., a sequential storage device) to a destination storage device (e.g., hard disk drive). For example, a particular file on the destination storage device may be corrupted or accidently deleted. Moreover, the computing environment may simply desire to restore data for the particular file from a particular point in time.
Currently, the entire volume must be restored in order to restore the particular file or the backup file must be copied to a random access device (i.e. disk). Sequential storage devices do not support random access of the particular file. Hence, the computing environment cannot mount a backup file as a volume, image or virtual disk and access the particular file directly from the tape. Consequently, a large amount of disk space in the destination storage device is needed to store the restored volume. If the computing environment desires to restore the volume to a state that existed before a recent loss of data (i.e., after that last backup), the backup system initiates a restoration process. To restore a single file, the backup file must be transferred to the destination storage device, a random access device so that it can be mounted, allowing the desired file to then be copied to the destination storage device or any other storage device.
Therefore, there is a need in the art for a method and apparatus for performing file-level restoration from a block-based backup file stored on a sequential storage device, such as a tape drive.